/****************************************************
 * Copyright (c) 2015 SJXT Technology Limited, All rights reserved.
 *
 * No part of this program may be reproduced, transmitted,
 * transcribed, stored in a retrieval system, or translated into any 
 * other computer languages in any form or by any means without the
 * prior written permission of:
 *
 *   SJXT.CO.LTD.
 *   540, JinNing Road, Xiangzhou Zhuhai, GD 
 *   P.R. China
 *   Tel:       (+86)756-2274333
 *   Fax:       (+86)756-2282339
 **************************************************/
package com.zhao.util;

import java.security.MessageDigest;

/**
 * 
 * @author zhaowj
 * @date2018年3月14日 下午9:44:42
 */
public class MD5Util {
      private static String byteArrayToHexString(byte b[]) {
		StringBuffer resultSb=new StringBuffer();
		for(int i=0;i<b.length;i++)
		{
			resultSb.append(byteToHexString(b[i]));
			
		}
    	  return resultSb.toString();
	  }
      
      private static String byteToHexString(byte b) {
		  int n=b;
		  if(n<0)
		  {
			  n+=256;
		  }
		  int d1=n/16;
		  int d2=n%16;
		  return hexDigits[d1]+hexDigits[d2];
	  }
      
      public static String MD5Encode(String origin,String charsetname) {
		  String resultString="";
		  try
		  {
			  resultString=new String(origin);
			  MessageDigest md=MessageDigest.getInstance("MD5");
			  if(charsetname==null||"".equals(charsetname))
			  {
				  resultString=byteArrayToHexString(md.digest(resultString.getBytes()));
			  }
			  else
			  {
				  resultString=byteArrayToHexString(md.digest(resultString.getBytes(charsetname)));
			  }
		  }
		  catch(Exception exception)
		  {
			  
		  }
		  return resultString;
	  }
      
      private static final String hexDigits[]={"0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"};
}
